#ifndef _LINK_LIST_H_
#define _LINK_LIST_H_

#include <stdio.h>
#include <stdlib.h>

typedef void * data_t;

typedef struct list_node{
	data_t data;
	struct list_node * next;
} linklist_t;

linklist_t *create_linklist();
linklist_t *create_list_node(data_t data);
int is_empty_linklist(linklist_t *l);
int insert_list(linklist_t *l, int pos, data_t data);
data_t get_list_node_data(linklist_t *l, int pos);
int delete_list_node(linklist_t *l, data_t data);
void reverse_linklist(linklist_t *l);
void * destroy_linklist(linklist_t **l);

#endif
